MATLAB Tutorial
Lecturer: Emad F E d Fatemizadeh i d h
1
Topics
Introduction Running MATLAB and MATLAB Environment Getting help Variables Vectors, Matrices, and linear Algebra V t M ti d li Al b Mathematical Functions and Applications Plotting Programming M-files User Defined Functions
2
Introduction
What is MATLAB: MATLAB which stands for MATrix LABoratory is a powerful tool for Computation and Visualization in a wide range on science application (From Economy to Aerospace) MATLAB abilities:
– – – – Variable management Data import and export Calculations (Based on Matrix) Generates Plots and Graphs
3
Running MATLAB
Use on Desktop icon or programs path in windows
4
MATLAB Environment
Main Working Windows Workspace Windows p Current Directory History Windows y
5
Getting Help
Help Windows Type one of the following commands in the command window: – help – lists all the help topics – help topic – provides help for the specified topic – help command – provides help for the specified command – helpwin – opens a separate help window for navigation
• helpwin command
– doc – Display HTML documentation in the Help browser
• doc command
– Lookfor keyword – search a M-files for keyword oo o ey o d sea c all es o ey o d
6
Variables
Variable names: – Must start with a letter (x, y, MyVar,…) – May contain only letters, digits, and the underscore “_”. – MATLAB is case sensitive, for example one & ONE are different variables. – MATLAB only recognizes the first 31 characters in a variable name. Assignment statement: – Variable = number; (x=123;) – Variable = expression; (x=y+123;) Effect of ;
7
Variables
Special variables: – ans: default variable name for the result. – pi: π = 3.1415926 …… – eps: ε= 2.2204e-016, smallest value by which two numbers can differ – inf: ∞, infinity – NAN or nan: not-a-number – i and j: imaginary number −1 Commands involving variables: – who: lists t e names o t e de ed variables o sts the a es of the defined a ab es – whos: lists the names and sizes of defined variables – clear: clears all variables – clear varname: clears the variable name – clc: clears the command window – clf: clears the current figure and the graph window
8
Vectors
MATLAB’s calculation is Matrix/vector based. How to create row vector:
– A=[12 13 pi –pi]; or A=[12,13,pi,–pi];
How to create column vector:
– B=[12; 13; pi; -pi];
How to create Matrices:
– C=[1 2 3;4 5 6; 7 8 9];
Use colon to create special vectores:
– A=0:0.5:2; ↔ A= [0 0.5 1 1.5 2]; – A=10:-2:2; ↔ A= [10 8 6 4 2];
Vector Transpose:
– B=A’;
9
Vectors
How to access to vectors/matrices elements:
– A(3), C(2,3), …
Use of colon (:) notation to access matrices elements:
– B(1:3), C(:,1:2), C(2:3,:)
How to delete a row of a matrix:
– B(: 2) = [ ]; Delete 2nd column B(:,2) – B(3,:) = [ ]; Delete 3rd row
How to Concatenation matrices to build a large matrix:
– B = [A A A] C [B B B B] A]; C=[B B;B B];
10
Arrays Operations
Simply Add(+), Subtract(-), Multiply(*), and Division(/) arrays and scalars. For A/S/M/D of an array by a scalar:
– B=A+2; B=A-2; B=A*2; B=A/2;
Power n of a scalar:
– C=2; A=C 2; B=C 1.3; A=C^2; B=C^1 3;
11
Arrays Operations
Element by Element Operation, dot (.) operator:
– – – – – C=A+B; C A B; C=A-B; C=A.*B; C=A./B; C A. B C=A.^B
Note: A and B Need to be same size or B be scalar!
12
Matrices and Operators
Operators:
– – – – – – – A=B+C; Same Size or one of them be scalar A B C; A=B-C; Same Size or one of them be scalar A=B*C; Matched Size or one of them be scalar A=k*B; k is scalar B inv(A); B=inv(A); d=det(A); B=A^2;
13
Matrices and Operators
Build a zero filled matrices:
– A= zeros(n); is an n-by-n matrix of zeros. – A= zeros(n,m); is an n-by-m matrix of zeros.
Build a one filled matrices:
– A= ones(n); is an n-by-n matrix of ones. – A= ones(n,m); is an n-by-m matrix of ones.
Build an Identity matrix:
– A= eye(n);
How get size of matrix:
– [m,n]=size(A); also m = size(A,1); and n = size(A,2);
How to get length of a vector:
– n = length(A);
14
MATLAB Workspace
MATLAB has an interactive programming capability (Not Proposed) Number representation:
X=±(1+f)*2e eps = 2-52 realmin = 2-1022 Underflow realmax = (2-eps)21023 Overflow
s 1 2
e 12 13
f 64
15
MATLAB Workspace
format Command
– – – – – – – – – – – – – – format short: Scaled fixed point format with 5 digits. format long: Scaled fixed point format with 15 digits for double and 7 digits for single single. format short e: Floating point format with 5 digits. format long e: Floating point format with 15 digits for double and 7 digits for single. format short g: Best of fixed or floating point format with 5 digits. format long g: Best of fixed or floating point format with 15 digits for double and 7 digits for single. format short eng: Engineering format that has at least 5 digits and a power that is a multiple of three format long eng: Engineering format that has exactly 16 significant digits and a power that is a multiple of three.
See help format for more information!
16
MATLAB Workspace
Directory Manipulation:
– – – – – – – – cd pwd dir mkdir save; Save all variable in matlab.mat files save filename a b c; Save variables a, b, and c in filename.mat load filename; Load a pre-saved file load; Load matlab.mat files
Load and Save command
17
Plotting Facility
Main command is plot – plot(variablename,symbol); plot(1:10,’*’) Plotting curves: – plot(x,y); x vs. y ( p ( ,y); (Both Linear) ) – semilogx(x,y); x (Logarithmic scale) vs. y (Linear scale) – semilogy(x,y); x (Linear scale) vs. y (Logarithmic scale) – loglog(x,y); x vs. y (Both logarithmic scale) Multiple curves p – plot(x,y,w,z); x vs. y and z vs. w Multiple figures – figure(n); Creation a new figure plot() command – Close; Closes the figure n window g – close all; Closes all the plot windows Subplots: – subplot(m,n,p); m by n grid of Plots, with p specifying the current plot as the pth window Line type and Color: – Plot(x,y,’b-’,z,w,’r.’,x,y,’k—’)
18
Plotting Facility
axis Command
Command axis([xmin xmax ymin ymax]) axis square axis equal axis normal Description Define minimum and maximum values of the axes Produce a square plot Equal scaling factors for both axes Turn off axis square, equal
axis (auto)
Return the axis to defaults
19
Plotting Facility
Other useful Command
Command grid on grid off Grid title(‘text’) xlabel(‘text’) ylabel( text ) ylabel(‘text’) text(x,y,’text’) Description Add dashed grids lines at the tick marks Removes grid lines (default) Toggles grid status (off to on or on to off) Labels top of plot with text Labels horizontal (x) axis with text Labels vertical (y) axis with text Adds text to location (x,y) on the current axes, where (x,y) is in units from the current plot
20
Mathematical Functions
Trigonometric: (sin, sind, cos, tan, asin, sinh, …) Exponential: (exp, log, log10, log2, sqrt, nthroot, …) Complex: (imag, real, abs, angle, conj, …) p ( g, , , g , j, ) Rounding and Remainder:
– – – – – – fix: Round towards zero floor: Round towards minus infinity ceil: Round towards plus infinity round: Round towards nearest integer mod: Modulus after division rem: Remainder after division
Discrete Mathematics: (gcd, lcm, factor, factorial, isprime, …)
21
Data Analysis Function
Useful command:
– – – – – – – – min: Minimum element from each column of Matrix max: Maximum element from each column of Matrix mean: Mean of each column of Matrix median: Median of each column of Matrix std: Standard Deviation of each column of Matrix sort: Sort a vector p od prod: Production of a vector oduct o o ecto sum: Summation of a vector
22
MATLAB Programming
Relational Operators:
– == (equal to) ( ) < (less than) > (greater than) ~= (not equal) <= (less than or equal to) ( q ) >= (greater than or equal to)
Logical Operators:
– & (and) | (or) ~ (not)
Logical Function: g
– and, or, xor – isempty: A variable is empty or not – all, and any: All or any of element are nonzero.
23
MATLAB Programming
Flow Control:
– if:
if expression statements elseif expression statements else statements end if (a>b), disp(‘a>b’); end; if (a>b), disp(‘a>b’); else disp(‘a<=b’); end; if (a>b), disp(‘a>b’); elseif (a0), Cntr = Cntr – 1; end;
26
MATLAB Programming
Flow Control:
– Switch-case: Switch case:
method = 'Bilinear'; switch lower(method) case {‘linear’,’bilinear’} disp('Method is linear') case 'nearest' disp('Method is nearest') otherwise disp( Unknown method. ) disp('Unknown method ') end;
27
MATLAB Programming
m files:
– script:
• A set of command in a file, which execute sequentially.
– function:
• Like functions in C
28
MATLAB Programming
Example of a script:
r =100; theta = 12; x = r cos(theta); r*cos(theta); y = r*sin(theta); >>Polar2Cart;
29
MATLAB Programming
Example of a function:
function [x,y] = Polar2Cart(r,theta); f ti [ ] P l 2C t( th t ) x = r*cos(theta); y = r*sin(theta);
>>[x,y] Polar2Cart(r,theta); >>[x y] = Polar2Cart(r theta);
30
MATLAB Programming
Write help for your function
function [x,y] = Polar2Cart(r,theta); [x y] Polar2Cart(r theta); % This function convert Polar to Cartesian x = r*cos(theta); % Compute x component. y = r*sin(theta); % Compute y component.
31